Java

您所在的位置:网站首页 be closed to等于close to Java

Java

2023-12-22 09:51| 来源: 网络整理| 查看: 265

一、问题描述

下面的代码使用了try-with-resource语法,会自动关闭Connection和Statement,是否还需要关闭ResultSet? Statement关闭后ResultSet会被回收么? 在这里插入图片描述

二、JDBC规范

JDBC规范4.3中有对Statement关闭后是否需要关闭ResultSet进行说明。 在这里插入图片描述 应用调用了 statement.close 表明其已经完成了 statement 的使用。所有的 statment 对象都将在创建他们的 connection 被关闭时 一起被关闭。但在 statements 对象已经处理完成后尽快关闭对程序来说是一个好的实现。这能够使得statment立刻释放占用的资源。 关闭一个statement对象同时也会使得该对象创建的所有resultSet对象被关闭。resultSet所持有的资源不会立刻被释放,直到GC执行, 因此当resultSet对象不再被需要时明确地关闭是一个很好的做法。 一旦statement对象被关闭,调用了该对象本身isColsed和colse方法的自身任何方法都将抛出SQLException异常。 以上有关 关闭statement对象的内容也同样适用于PreparedStatement和CallableStatement。

Tips:关闭连接时最好按照resultSet先关,statement接着,connection最后的顺序。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3